/**

  使用说明：将js放入到 plugins/example 目录下

  功能说明：当Bot处于被禁言状态时拦截指令并输出提示到debug

  插件用途：缓解Bot被禁言时指令依然响应造成的不必要的消耗，如：浏览器渲染占用性能、功能CD增加等

  插件原理：高优先级接收所有命令同时获取禁言时间进行判断并拦截，对于使用Yunzai规则的插件可以做到有效拦截，使用Bot.on的插件无法做到有效拦截 如：千羽、反击等。

  更新日志：
    2024.07.22 初版发布
    2024.08.02 修复当Bot有管理时全员禁言下也拦截消息

*/

export class Intercept extends plugin {
  constructor() {
    super({
      name: "禁言拦截指令",
      event: "message.group",
      priority: -Infinity
    })
  }
  
  accept(e = this.e) {
    if (e.group?.mute_left) {
      logger.debug(`Bot ${logger.yellow(`${e.self_id ?? e.bot.uin}`)} 在群 ${logger.green(`${e.group_id}`)} 被禁言，已拦截命令`)
      return "return"
    } else if (e.group?.all_muted && !e.group.is_admin && !e.group.is_owner) {
      logger.debug(`Bot ${logger.yellow(`${e.self_id ?? e.bot.uin}`)} 所在群 ${logger.green(`${e.group_id}`)} 已开启全员禁言，已拦截命令`)
      return "return"
      }
  }
}